import java.io.Serializable;
import java.util.*;

public class Periodique extends Observable implements Serializable {

	// ************************************************************************************************************
	// Constantes
	// ************************************************************************************************************

	private static final long serialVersionUID = 1L;
	
	// ************************************************************************************************************
	// Attributs
	// ************************************************************************************************************

	private String _issn;
	private String _nom;

	// Attributs d'Association
	private HashMap<String, Parution> _parutions;
	
	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************

	public Periodique(String issn, String nom) {
		
		this.setIssn(issn);
		this.setNom(nom);
		this.setParutions(new HashMap<String, Parution>());
		
	} // Fin Constructeur

	// ************************************************************************************************************
	// Méthodes privées
	// ************************************************************************************************************
	
	// ------------------------------------------------------------------------------------------------------------
	// Affecteurs
	
	
	public void setIssn(String issn){
		_issn = issn;
	}
	
	public void setNom(String nom){
		_nom = nom;
	}
	
	public void setParutions(HashMap<String, Parution> parutions) {
		_parutions = parutions;
	}
	
	// ------------------------------------------------------------------------------------------------------------
	// Traitements

	public void ajouterParution(Parution pa) {
		String id = pa.getNumero();
		_parutions.put(id, pa);
	}
	
	public void supprimerParution(Parution pa) {
		String id = pa.getNumero();
		_parutions.remove(id);
	}

	// ************************************************************************************************************
	// Méthodes publiques
	// ************************************************************************************************************

	// ------------------------------------------------------------------------------------------------------------
	// Accesseurs
	
	
	public String getIssn() {
		return _issn;
	}

	public String getNom() {
		return _nom;
	}

	public Collection<Parution> getParutions() {
		return _parutions.values();
	}
	
	public int getNbParutions(){
		return _parutions.size();
	}

	public Parution getParution(String nom) {
		return (Parution) _parutions.get(nom);
	}
	
	
	
}
